#pragma once

#include <QXmlStreamReader>

namespace Ipc2581b
{

class Ipc2581Parser;
class ContentParser;
class FunctionModeParser;
class DictionaryStandardParser;
class EntryStandardParser;
class DictionaryUserParser;
class EntryUserParser;
class DictionaryFontParser;
class EntryFontParser;
class FontDefParser;
class FontDefEmbeddedParser;
class FontDefExternalParser;
class GlyphParser;
class FontRefParser;
class DictionaryLineDescParser;
class EntryLineDescParser;
class LineDescParser;
class LineDescGroupParser;
class LineDescRefParser;
class DictionaryFillDescParser;
class EntryFillDescParser;
class FillDescParser;
class FillDescGroupParser;
class FillDescRefParser;
class DictionaryColorParser;
class EntryColorParser;
class ColorGroupParser;
class ColorParser;
class ColorRefParser;
class DictionaryFirmwareParser;
class LogisticHeaderParser;
class RoleParser;
class EnterpriseParser;
class PersonParser;
class HistoryRecordParser;
class FileRevisionParser;
class SoftwarePackageParser;
class CertificationParser;
class ChangeRecParser;
class ApprovalParser;
class BomParser;
class BomHeaderParser;
class BomItemParser;
class BomDesParser;
class DocDesParser;
class MatDesParser;
class RefDesParser;
class ToolDesParser;
class CharacteristicsParser;
class ECadParser;
class CadHeaderParser;
class SpecParser;
class SpecificationTypeParser;
class BackdrillParser;
class ComplianceParser;
class ConductorParser;
class DielectricParser;
class GeneralParser;
class ImpedanceParser;
class TechnologyParser;
class TemperatureParser;
class ToolParser;
class PropertyParser;
class V_CutParser;
class CadDataParser;
class LayerParser;
class StackupParser;
class StackupGroupParser;
class StackupLayerParser;
class StepParser;
class PadStackParser;
class LayerHoleParser;
class LayerPadParser;
class PadstackDefParser;
class PadstackHoleDefParser;
class PadstackPadDefParser;
class RouteParser;
class StepRepeatParser;
class PackageParser;
class LandPatternParser;
class TargetParser;
class SilkScreenParser;
class AssemblyDrawingParser;
class MarkingParser;
class PinParser;
class ComponentParser;
class LogicalNetParser;
class PinRefParser;
class PhyNetGroupParser;
class PhyNetParser;
class PhyNetPointParser;
class LayerFeatureParser;
class SetParser;
class PadParser;
class FiducialParser;
class BadBoardMarkParser;
class GlobalFiducialParser;
class GoodPanelMarkParser;
class LocalFiducialParser;
class HoleParser;
class SlotCavityParser;
class ZAxisDimParser;
class MaterialCutParser;
class MaterialLeftParser;
class FeaturesParser;
class DfxMeasurementsParser;
class AvlParser;
class FeatureParser;
class StandardShapeParser;
class UserShapeParser;
class StandardPrimitiveRefParser;
class UserPrimitiveRefParser;
class StandardPrimitiveParser;
class ButterflyParser;
class CircleParser;
class ContourParser;
class DiamondParser;
class DonutParser;
class EllipseParser;
class HexagonParser;
class MoireParser;
class OctagonParser;
class OvalParser;
class RectCenterParser;
class RectChamParser;
class RectCornerParser;
class RectRoundParser;
class ThermalParser;
class TriangleParser;
class UserPrimitiveParser;
class SimpleParser;
class ArcParser;
class LineParser;
class OutlineParser;
class PolylineParser;
class TextParser;
class UserSpecialParser;
class XformParser;
class LocationParser;
class PolygonParser;
class PolyBeginParser;
class PolyStepParser;
class PolyStepSegmentParser;
class PolyStepCurveParser;
class BoundingBoxParser;
class NameRefParser;
class IdRefParser;
class CADDataLayerRefParser;
class SpanParser;
class NonstandardAttributeParser;
class RevisionParser;
class BackdrillListParser;
class BomCategoryParser;
class BoardTechnologyParser;
class ButterflyShapeParser;
class CadPinParser;
class CadPropertyParser;
class CertificationCategoryParser;
class CertificationStatusParser;
class ComplianceListParser;
class ConductorListParser;
class ContextParser;
class DfxCategoryParser;
class DielectricListParser;
class DonutShapeParser;
class ToolListParser;
class ToolPropertyListParser;
class EnterpriseCodeParser;
class ExposureParser;
class FloorLifeParser;
class GeneralListParser;
class ImpedanceListParser;
class IsoCodeParser;
class LayerFunctionParser;
class LineEndParser;
class FillPropertyParser;
class LinePropertyParser;
class MarkingUsageParser;
class ModeParser;
class ModRefParser;
class MountParser;
class NetClassParser;
class NetPointParser;
class PackageTypeParser;
class PadUsageParser;
class PadUseParser;
class PinElectricalParser;
class PinMountParser;
class PinOneOrientationParser;
class PolarityParser;
class PropertyUnitParser;
class RoleFunctionParser;
class SideParser;
class PlatingStatusParser;
class StructureListParser;
class TechnologyListParser;
class TemperatureListParser;
class ThermalShapeParser;
class TransmissionListParser;
class UnitModeParser;
class UnitsParser;
class VCutListParser;
class WhereMeasuredParser;
class DoubleParser;
class IntParser;
class BoolParser;
class QStringParser;

class Ipc2581;

class DocumentParser
{
public:
    DocumentParser();

    bool parse(QXmlStreamReader *reader);
    Ipc2581 *result();

private:

    Ipc2581Parser *m_Ipc2581Parser;
    ContentParser *m_ContentParser;
    FunctionModeParser *m_FunctionModeParser;
    DictionaryStandardParser *m_DictionaryStandardParser;
    EntryStandardParser *m_EntryStandardParser;
    DictionaryUserParser *m_DictionaryUserParser;
    EntryUserParser *m_EntryUserParser;
    DictionaryFontParser *m_DictionaryFontParser;
    EntryFontParser *m_EntryFontParser;
    FontDefParser *m_FontDefParser;
    FontDefEmbeddedParser *m_FontDefEmbeddedParser;
    FontDefExternalParser *m_FontDefExternalParser;
    GlyphParser *m_GlyphParser;
    FontRefParser *m_FontRefParser;
    DictionaryLineDescParser *m_DictionaryLineDescParser;
    EntryLineDescParser *m_EntryLineDescParser;
    LineDescParser *m_LineDescParser;
    LineDescGroupParser *m_LineDescGroupParser;
    LineDescRefParser *m_LineDescRefParser;
    DictionaryFillDescParser *m_DictionaryFillDescParser;
    EntryFillDescParser *m_EntryFillDescParser;
    FillDescParser *m_FillDescParser;
    FillDescGroupParser *m_FillDescGroupParser;
    FillDescRefParser *m_FillDescRefParser;
    DictionaryColorParser *m_DictionaryColorParser;
    EntryColorParser *m_EntryColorParser;
    ColorGroupParser *m_ColorGroupParser;
    ColorParser *m_ColorParser;
    ColorRefParser *m_ColorRefParser;
    DictionaryFirmwareParser *m_DictionaryFirmwareParser;
    LogisticHeaderParser *m_LogisticHeaderParser;
    RoleParser *m_RoleParser;
    EnterpriseParser *m_EnterpriseParser;
    PersonParser *m_PersonParser;
    HistoryRecordParser *m_HistoryRecordParser;
    FileRevisionParser *m_FileRevisionParser;
    SoftwarePackageParser *m_SoftwarePackageParser;
    CertificationParser *m_CertificationParser;
    ChangeRecParser *m_ChangeRecParser;
    ApprovalParser *m_ApprovalParser;
    BomParser *m_BomParser;
    BomHeaderParser *m_BomHeaderParser;
    BomItemParser *m_BomItemParser;
    BomDesParser *m_BomDesParser;
    DocDesParser *m_DocDesParser;
    MatDesParser *m_MatDesParser;
    RefDesParser *m_RefDesParser;
    ToolDesParser *m_ToolDesParser;
    CharacteristicsParser *m_CharacteristicsParser;
    ECadParser *m_ECadParser;
    CadHeaderParser *m_CadHeaderParser;
    SpecParser *m_SpecParser;
    SpecificationTypeParser *m_SpecificationTypeParser;
    BackdrillParser *m_BackdrillParser;
    ComplianceParser *m_ComplianceParser;
    ConductorParser *m_ConductorParser;
    DielectricParser *m_DielectricParser;
    GeneralParser *m_GeneralParser;
    ImpedanceParser *m_ImpedanceParser;
    TechnologyParser *m_TechnologyParser;
    TemperatureParser *m_TemperatureParser;
    ToolParser *m_ToolParser;
    PropertyParser *m_PropertyParser;
    V_CutParser *m_V_CutParser;
    CadDataParser *m_CadDataParser;
    LayerParser *m_LayerParser;
    StackupParser *m_StackupParser;
    StackupGroupParser *m_StackupGroupParser;
    StackupLayerParser *m_StackupLayerParser;
    StepParser *m_StepParser;
    PadStackParser *m_PadStackParser;
    LayerHoleParser *m_LayerHoleParser;
    LayerPadParser *m_LayerPadParser;
    PadstackDefParser *m_PadstackDefParser;
    PadstackHoleDefParser *m_PadstackHoleDefParser;
    PadstackPadDefParser *m_PadstackPadDefParser;
    RouteParser *m_RouteParser;
    StepRepeatParser *m_StepRepeatParser;
    PackageParser *m_PackageParser;
    LandPatternParser *m_LandPatternParser;
    TargetParser *m_TargetParser;
    SilkScreenParser *m_SilkScreenParser;
    AssemblyDrawingParser *m_AssemblyDrawingParser;
    MarkingParser *m_MarkingParser;
    PinParser *m_PinParser;
    ComponentParser *m_ComponentParser;
    LogicalNetParser *m_LogicalNetParser;
    PinRefParser *m_PinRefParser;
    PhyNetGroupParser *m_PhyNetGroupParser;
    PhyNetParser *m_PhyNetParser;
    PhyNetPointParser *m_PhyNetPointParser;
    LayerFeatureParser *m_LayerFeatureParser;
    SetParser *m_SetParser;
    PadParser *m_PadParser;
    FiducialParser *m_FiducialParser;
    BadBoardMarkParser *m_BadBoardMarkParser;
    GlobalFiducialParser *m_GlobalFiducialParser;
    GoodPanelMarkParser *m_GoodPanelMarkParser;
    LocalFiducialParser *m_LocalFiducialParser;
    HoleParser *m_HoleParser;
    SlotCavityParser *m_SlotCavityParser;
    ZAxisDimParser *m_ZAxisDimParser;
    MaterialCutParser *m_MaterialCutParser;
    MaterialLeftParser *m_MaterialLeftParser;
    FeaturesParser *m_FeaturesParser;
    DfxMeasurementsParser *m_DfxMeasurementsParser;
    AvlParser *m_AvlParser;
    FeatureParser *m_FeatureParser;
    StandardShapeParser *m_StandardShapeParser;
    UserShapeParser *m_UserShapeParser;
    StandardPrimitiveRefParser *m_StandardPrimitiveRefParser;
    UserPrimitiveRefParser *m_UserPrimitiveRefParser;
    StandardPrimitiveParser *m_StandardPrimitiveParser;
    ButterflyParser *m_ButterflyParser;
    CircleParser *m_CircleParser;
    ContourParser *m_ContourParser;
    DiamondParser *m_DiamondParser;
    DonutParser *m_DonutParser;
    EllipseParser *m_EllipseParser;
    HexagonParser *m_HexagonParser;
    MoireParser *m_MoireParser;
    OctagonParser *m_OctagonParser;
    OvalParser *m_OvalParser;
    RectCenterParser *m_RectCenterParser;
    RectChamParser *m_RectChamParser;
    RectCornerParser *m_RectCornerParser;
    RectRoundParser *m_RectRoundParser;
    ThermalParser *m_ThermalParser;
    TriangleParser *m_TriangleParser;
    UserPrimitiveParser *m_UserPrimitiveParser;
    SimpleParser *m_SimpleParser;
    ArcParser *m_ArcParser;
    LineParser *m_LineParser;
    OutlineParser *m_OutlineParser;
    PolylineParser *m_PolylineParser;
    TextParser *m_TextParser;
    UserSpecialParser *m_UserSpecialParser;
    XformParser *m_XformParser;
    LocationParser *m_LocationParser;
    PolygonParser *m_PolygonParser;
    PolyBeginParser *m_PolyBeginParser;
    PolyStepParser *m_PolyStepParser;
    PolyStepSegmentParser *m_PolyStepSegmentParser;
    PolyStepCurveParser *m_PolyStepCurveParser;
    BoundingBoxParser *m_BoundingBoxParser;
    NameRefParser *m_NameRefParser;
    IdRefParser *m_IdRefParser;
    CADDataLayerRefParser *m_CADDataLayerRefParser;
    SpanParser *m_SpanParser;
    NonstandardAttributeParser *m_NonstandardAttributeParser;
    RevisionParser *m_RevisionParser;
    BackdrillListParser *m_BackdrillListParser;
    BomCategoryParser *m_BomCategoryParser;
    BoardTechnologyParser *m_BoardTechnologyParser;
    ButterflyShapeParser *m_ButterflyShapeParser;
    CadPinParser *m_CadPinParser;
    CadPropertyParser *m_CadPropertyParser;
    CertificationCategoryParser *m_CertificationCategoryParser;
    CertificationStatusParser *m_CertificationStatusParser;
    ComplianceListParser *m_ComplianceListParser;
    ConductorListParser *m_ConductorListParser;
    ContextParser *m_ContextParser;
    DfxCategoryParser *m_DfxCategoryParser;
    DielectricListParser *m_DielectricListParser;
    DonutShapeParser *m_DonutShapeParser;
    ToolListParser *m_ToolListParser;
    ToolPropertyListParser *m_ToolPropertyListParser;
    EnterpriseCodeParser *m_EnterpriseCodeParser;
    ExposureParser *m_ExposureParser;
    FloorLifeParser *m_FloorLifeParser;
    GeneralListParser *m_GeneralListParser;
    ImpedanceListParser *m_ImpedanceListParser;
    IsoCodeParser *m_IsoCodeParser;
    LayerFunctionParser *m_LayerFunctionParser;
    LineEndParser *m_LineEndParser;
    FillPropertyParser *m_FillPropertyParser;
    LinePropertyParser *m_LinePropertyParser;
    MarkingUsageParser *m_MarkingUsageParser;
    ModeParser *m_ModeParser;
    ModRefParser *m_ModRefParser;
    MountParser *m_MountParser;
    NetClassParser *m_NetClassParser;
    NetPointParser *m_NetPointParser;
    PackageTypeParser *m_PackageTypeParser;
    PadUsageParser *m_PadUsageParser;
    PadUseParser *m_PadUseParser;
    PinElectricalParser *m_PinElectricalParser;
    PinMountParser *m_PinMountParser;
    PinOneOrientationParser *m_PinOneOrientationParser;
    PolarityParser *m_PolarityParser;
    PropertyUnitParser *m_PropertyUnitParser;
    RoleFunctionParser *m_RoleFunctionParser;
    SideParser *m_SideParser;
    PlatingStatusParser *m_PlatingStatusParser;
    StructureListParser *m_StructureListParser;
    TechnologyListParser *m_TechnologyListParser;
    TemperatureListParser *m_TemperatureListParser;
    ThermalShapeParser *m_ThermalShapeParser;
    TransmissionListParser *m_TransmissionListParser;
    UnitModeParser *m_UnitModeParser;
    UnitsParser *m_UnitsParser;
    VCutListParser *m_VCutListParser;
    WhereMeasuredParser *m_WhereMeasuredParser;
    DoubleParser *m_DoubleParser;
    IntParser *m_IntParser;
    BoolParser *m_BoolParser;
    QStringParser *m_QStringParser;

};

}